package com.clothing.customization.controller;

import com.clothing.customization.dto.ApiResult;
import com.clothing.customization.entity.User;
import com.clothing.customization.service.impl.UpdatePasswordService;
import com.clothing.customization.util.PasswordUpdateScript;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 管理员用户控制器
 */
@RestController
@RequestMapping("/api/admin/users")
@RequiredArgsConstructor
public class AdminUserController {
    
    private final UpdatePasswordService updatePasswordService;
    private final PasswordUpdateScript passwordUpdateScript;
    
    /**
     * 将所有用户密码重置为明文密码
     * @return 操作结果
     */
    @PostMapping("/reset-all-passwords")
    public ResponseEntity<ApiResult<String>> resetAllPasswords() {
        updatePasswordService.updateAllPasswordsToPlainText();
        return ResponseEntity.ok(ApiResult.success("所有用户密码已重置为明文：123456"));
    }
    
    /**
     * 直接通过SQL更新数据库中的密码
     * @return 操作结果
     */
    @PostMapping("/update-db-passwords")
    public ResponseEntity<ApiResult<String>> updateDatabasePasswords() {
        passwordUpdateScript.updateDatabasePasswords();
        return ResponseEntity.ok(ApiResult.success("数据库中的所有用户密码已直接更新为：123456"));
    }
    
    /**
     * 获取所有用户信息，包括用户名和密码
     * @return 用户列表
     */
    @GetMapping("/with-passwords")
    public ResponseEntity<ApiResult<List<User>>> getAllUsersWithPasswords() {
        List<User> users = updatePasswordService.getAllUsersWithPasswords();
        return ResponseEntity.ok(ApiResult.success(users));
    }
} 